home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 2
/
Atari Mega Archive CD - Volume 2.iso
/
8bit
/
os
/
mtos.doc
< prev
next >
Wrap
Text File
|
1995-04-22
|
11KB
|
180 lines
NOTE: The first uploaded ARC of MTOS
contained compaction errors that
PREVENTD usability. This has been
REPAIRED in this version.
John Nagy, CHAOS BBS (517) 371-1106
M.ulti-T.asking O.perating S.ystem
M.T.O.S.
MT-OS
MTOS
Copyright (C) 1987 by Tom Hunt
(beta test version)
12-25-87
(Merry Christmas Atarians, from me to you!)
MTOS is a revolutionary new O.S for Atari 8-bit computers with 256k (or more).
It is actually a O.S. extention, since it works with the resident ROM based
Atari O.S., and with DOS. With MTOS installed, the multitasking environment
is made available to the Atari owner
This document is divided into the following sections,
WHAT MULTITASKING IS,
WHAT MULTITASKING ISN'T,
WHAT MTOS IS, AND WHAT IT CAN DO,
WHAT MTOS ISN'T, AND WHAT IT CAN'T DO,
GETTING STARTED,
and SPECIAL NOTES.
If the subject of time-sharing/multitasking is new to you, then you should
read the whole text.
_______________________________________________________________________________
WHAT MULTITASKING IS
_______________________________________________________________________________
Everyone seems to know a little about what multitasking is. Simply put,
multitasking is a computer operating environment that allows more than one
program to be run at the same time. There is a form of multitasking that
occurs during the regular Atari computer functions. These are slices of time in
which your program is interrupted by hardware signals, and system control is
turned over to the O.S. for the purpose of performing system tasks. The VBI
and DLI are two interrupts that you've probably heard about. During these
interrupts, you can even make the O.S. perform some tasks that you've made
provision for, by pointing the appropriate vector to point to your m.l.
routine.
But the realm of multitasking is a realm whose domain has been traditionally
the MINI and MAIN FRAME computers. These large computers are not only capable
of multitasking, but are also capable of supporting the MULTI-USER environment.
In a situation like this, individual users have a job (aka task, program,
application) running on his/her assigned terminal. To each user, it appears
as tho they have the sole use of the computer's resources. Before multiuser/
multitasking, users had to wait for their turn to use the computer. But using
modern operating systems, time sharing is a common thing.
Think about time being a pie, and time-sharing as slices of that pie. Each job
is assigned a slice of the time pie. Some jobs get assigned bigger slices than
others, depending on their priority. So multitasking is a valuable asset if you
want to do some word-processing, while another program is working on some other
task in the background.
_______________________________________________________________________________
WHAT MULTITASKING ISN'T
_______________________________________________________________________________
There is an old saying- "There ain't no such thing as a free lunch!". In other
words, multitasking is system taxing! You can have one program hogging 100% of
the system's resources, or 2 programs sharing 50% of the system's resources,
and so on... The pie never gets any bigger, you just cut the slices smaller.
Plus, there is the O.S. overhead involved in the juggling. That is, each time
a task's clock counts down to zero, the multitasker has to jump in there to do
house-keeping to get things ready for the next task on the agenda. This house
keeping eats up machine cycles, and might account fo 4% of the time pie with
only 2 jobs running. With 3 jobs running, it goes up to 8%. With 6 jobs run-
ning it goes up to a whopping 20%!! So, the more jobs you have running, the
slower your programs will execute. A multitasking environment will not give
you more processing power. It will only distribute processing among different
jobs.
_______________________________________________________________________________
WHAT MTOS IS, AND WHAT IT CAN DO
_______________________________________________________________________________
MTOS follows the discription about multitasking and time sharing. It allows
the Atari computer owner to run up to 6 tasks at the same time. In the past,
this kind of system environment was totaly unavailable to us. Now you can be
using a word processor, flip to a basic game, flip to check on the progress
of a program doing calculations, then flip back to your word processor. And
all while each individual program is running! You can write your own programs
that are compatable with MTOS, if a few simple rules are observed. These
rules will be discussed later.
_______________________________________________________________________________
WHAT MTOS ISN'T, AND WHAT IT CANNOT DO
_______________________________________________________________________________
As you add jobs to MTOS, each program will seem to run slower. For some
programs, this is unacceptable. Other programs, like a word processor, spend
alot of wasted time in loops, waiting for events to occur. Like waiting for
a keypress. CPU time could be put to better use with MTOS.
The amount of memory available to each program is limited to 16k. The amount
of screen ram allocated to each task is 1280 bytes, enough for GRAPHICS 0,1,
2,3,4,5,6,12, and 13. The programs running under MTOS must be "well behaved".
That is to say that they shouldn't steal the VVBLKD vector, or the VKEYBD
vectors. They shouldn't interfere with any memory above $7FFF, or from
$2600-$3FFF. If you do so, you risk either interferring with another program,
or at worse, a total system crash. Any free and legal addresses from
$0000-$0500 (with the exception of the above mentioned vectors!) MAY be used!
If your program doesn't follow the rules, there is nothing to prevent it from
doing so. On the CPU's used by large computers is a mask that will not
allow any illegal addressing, and will return an error message to the user.
The 6502 family of CPU's don't have this capability.
M.l. programs must be assembeled to reside from $4000-$7FFF. Your booting
game disks are definatly not MTOS compatable. These programming constraints
of the multitasking environment are not out of the ordanary, since program-
mers working on a mainframe computer must make "well behaved" programs, also.
_______________________________________________________________________________
GETTING STARTED
_______________________________________________________________________________
There is a built-in keyboard buffer in MTOS. Sparta dos users need to KEY
OFF before loading MTOS. MTOS may be used with or without BASIC, but if you
want to mix running both m.l. and BASIC programs, be sure to boot without
holding down the option key.
When MTOS initializes, you will be looking at the executor screen. The
executor program (called Exec) will be running, and reserves task #0
for itself. You should press a 1 to initialize a new task. After this,
You can press a 1 to initialze a m.l. program, or a 2 to
initialize a basic program. There is also a test mode that is initialized by
a 3. You will be prompted for the amount of clocks to be assigned to the new
task. 2-9 is the normal amount, but you can input any single character. That
character will have $30 subtracted from it's atascii value, and the new value
used for the amount of core clocks assinged to the new task. For instance, if
you would input a F, the value 16 would be the amount of core clocks assigned.
If you chose the m.l. option (2), you will be prompted for the filespec of
the object file. A m.l. program has to obey the rules (see above)! The
process will then be executed to get either the basic cartridge or your m.l.
program initialized.
To detach from Exec, and attach to the job you just started, press 2 to
(view) the job. You will be prompted for which job, which you choose from the
ones listed on the Exec screen as being active. If you did everything as
described above, you should now have your terminal attached to the new task,
and if you chose basic, you should be looking at basic's familiar READY
prompt. To detach and go back to Exec, have your